package com.tian.controller.user;

import com.tian.annotation.SysLogAnnotation;
import com.tian.dto.*;
import com.tian.dto.user.UserQueryListReqDto;
import com.tian.service.UserService;
import com.tian.util.CommonResult;
import com.tian.util.DataGridView;
import com.tian.util.ResultObj;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * @author tianwc  公众号：java后端技术全栈、面试专栏
 * @version 1.0.0
 * @date 2023年05月11日 19:38
 * 博客地址：<a href="http://woaijava.cc/">博客地址</a>
 * <p>
 * 用户信息管理
 */
@Slf4j
@RestController
@RequestMapping("/admin/user")
public class UserAdminController {

    @Resource
    private UserService userService;

    /**
     * 通过用户手机号查询用户信息
     */
    @SysLogAnnotation
    @PostMapping("/findByPhone")
    public CommonResult<QueryUserRespDto> findByPhone(@RequestBody QueryUserReqDto queryUserReqDto, @RequestHeader("x-token") String token, @RequestHeader("x-msgId") String msgId) {
        log.info("x-token={},x-msgId={}", token, msgId);
        return userService.selectByPhone(queryUserReqDto);
    }


    /**
     * 用户全查询
     */
    @RequestMapping("/loadAllUser")
    public DataGridView loadAllUser(UserQueryListReqDto userQueryListReqDto) {
        return userService.list(userQueryListReqDto);
    }

    @RequestMapping("/delete/{id}r")
    public ResultObj deleteUser(@PathVariable Integer id) {
        try {
            this.userService.removeById(id);
            return ResultObj.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }

}
